查看原文
其他

科技爱好者周刊(第 160 期):中年码农的困境

阮一峰 阮一峰的网络日志 2023-05-21

这里记录每周值得分享的科技内容,周五发布。

本杂志开源(GitHub: ruanyf/weekly[1]),欢迎提交 issue,投稿或推荐科技内容。

周刊讨论区的帖子《谁在招人?》[2],提供大量程序员就业信息,欢迎访问或发布工作/实习岗位。

封面图

云南红河州的蝴蝶谷,5月出现蝴蝶大爆发,数量是十年来最多,估计达到1.5亿只。(via[3]

本周话题:中年码农的困境

上周谈到了游戏开发者的年薪[4],我后来想到,曾经在 B 站看过一个视频[5],也是讲这个事情。

我又重新看了一遍,还是感到说得很好,想分享给大家。下面就是我总结的视频主要内容,下文的“我”都是指视频的讲述者。

2008年,哈工大研究生毕业后,我和同宿舍的同学一起来了上海。他在盛大游戏工作几年后,回了广州老家,我们就很少联系了。

前一段时间,我有事找他,就聊了一下近况。他本科和硕士都是计算机专业,现在广州的一家游戏公司上班,还在写代码。我们都已经35岁了,我也想知道,这个年龄段的中年码农,现在的行情怎么样?

他跟我说了几个情况。首先,跟大家想的一样,加班非常厉害。周一到周五,每天基本是晚上十点下班,如果遇到项目上线或者重大更新,那肯定是凌晨两三点下班,通宵也是有的。周六还要正常上班。

他现在的这家公司比较坑。游戏公司给研发人员的基本工资不会太高,你的很大一部分收入来自项目奖金。去年他们公司有一个项目上线,就在上线之前,把整个项目组解散了,要么辞退,要么分配到其他的项目组。公司这是为了节省成本,少发奖金。很多公司都这么干,没有办法的,员工永远是处在弱势的地位。

然后,我很好奇,也是很多人好奇的,985高校的计算机硕士,工作到现在有12年了,收入是多少呢?他跟我说,他的月薪是每月税后三万多,具体多少他没说,奖金我也没问。

我是自由职业者,会担心下个月的收入,我觉得他在公司上班,可能相对稳定一点。他说自由职业者的所有担心,他作为上班族都有,担心会被裁员。裁员是所有中年码农,或者说所有中年职场人士,都避不开的一个话题。35岁到40岁的这些职场人士,如果职位做不到中层,你的人力成本是很贵的。把你优化掉,雇佣那些刚毕业的年轻人,对公司是更优的选择。他们更有体力,也更听话,执行力也更强。很多公司裁员时,第一考虑的就是中年的中低层职员。作为中年人,如果你平时不加班,万一绩效评得不好,那就可能被优化掉。

我刚毕业时,很多同学和同事可能心里想的是,写几年代码,代码写得好之后去转管理层。后来有一些人真的转了管理,但是更多的人是转行,不做码农了,因为年纪大了,各种体力都跟不上了。转管理层毕竟是少数,因为僧多粥少,只有那么几个位置,而且有些人就不适合做管理,喜欢写代码。就算成功晋升管理层,往上走就更难了,很多时候只能走到中层,很难走到高层。所以,对于中层管理者,前面说的那些中年危机,他同样都有。

现在已经有很多三四十岁的码农了,好消息是有一小撮人,像我同学那样,依然在写代码,坏消息是很多公司对于中年的码农比较苛刻,由于他们的综合人力成本比较高,很容易被优化掉。这就是现状。

下面对于那些年轻的码农,我给几个建议吧。

(1)要有积累。不管是文字、视频、项目、代码等等,一定要有积累,要在本职工作以外,有一个东西你可以慢慢的累积下来。最开始的几年,可能都没有什么收益,但你最好还是要坚持下去。我觉得,积累是一种很强大的力量,比学习能力更重要。因为随着年龄的增长,你的学习能力是在下降的,而且行业和技术迭代比较快,一直有新东西出现,你必须不断地保持学习,这很困难。

(2)要让自己不可或缺。公司制定了很多很完善的流程和制度,目的就是为了让每一位员工都可以被替代,一旦有人离职,都可以在短时间内找到替代他的人,这样才能保持公司的正常运转。个人的策略其实就是跟公司相反,让公司不容易找到替代你的人。如果公司需要花费较长时间或者较大的成本,才能找到合适的人来替换你,那么你就是不可或缺的。

(3)要保持开放的头脑,要善于接受。每个人的见识是有局限的,世界是多元的,每一次交流都是认知的碰撞。很多人就是不善于接受别人的观点,很固执。我并不是说,让你无脑地赞同别人,而是你愿意去尝试或者验证别人的观点。这样才会给自己带来更多的机会,蛮干是没有出路的。中国大部分码农的现状是不乐观的,如果你不多去思考的话,情况可能会更加的不乐观。

Authing 身份云

以后,周刊会不定期推广国产软件精品和新品,每周详细介绍一款软件。如果大家有意推广自己的产品,欢迎与我联系(Email:yifeng.ruan@gmail.com[6])。



本周的主角是北京蒸汽记忆科技有限公司的 Authing[7]。去年他们在周刊上亮相过,经过近一年的密集开发,Authing 产品有了大幅度改进,功能稳定性显著提升,SDK 也更加完备,所以想再给大家介绍一下他们。

如果用一句话表达,Authing 做的是身份认证和授权管理的 SaaS 服务。说得通俗一点,他们通过云服务,帮外部应用解决用户登录和权限设置问题,国外称为 IDaaS(ID as a Service),中文译为“身份云”。

用户的认证和权限管理对软件来说特别重要,不仅要保证数据安全,还要满足各种协议和使用场景,对企业来说往往是开发难度大,既耗时又费人力。

Authing 就是为了解决这个痛点而生的,通过将用户数据与软件本身的功能解耦,使得开发者不必自建身份管理系统,只需要调用 Authing 的云服务,不仅提升了安全性,还节约了开发时间。

小到几行代码的登录表单,大到企业应用的身份中台,你都可以在他们的平台上进行定制,整个过程方便快速,而且价格低廉。

具体来说,Authing 提供三种不同的使用方法:

(1)最简单的,让 Authing 托管你的登录页,登录时跳转到他们的网站即可,用户登录后,再返回到你的应用。大家可以点击查看这个范例[8]

(2)如果不想让用户跳到外部登录页,就使用他们提供的前端登录组件[9],嵌入自己的 Web 或移动端页面,完全不需要自己实现登录 UI 和认证逻辑。

(3)自定义登录 UI 和认证流程,这样灵活性最大,但需要自己调用 API 开发,目前 Authing 提供 10 余种主流语言或框架的 SDK[10]

值得一提的是 Authing 提供多端支持,Web 页面、移动端、原生 App 和小程序等,都可以接入。具体使用哪一种认证(密码、手机二维码、社会化登录和多因素认证等),需要自己在后台配置。至于更复杂的权限控制,就请看文档[11]了。

为了减轻开发负担,尤其是企业应用的开发,Authing 新上线了“应用市场”,支持常见的云服务平台(比如,阿里云、腾讯云)。如果你的应用架设在这些云平台,那么只要安装一次对应的适配层,就能实现当前平台上所有应用的单点登录。



你也许想不到,他们是一家 95 后开发者成立的创业公司,才不到两岁,业务就已经蒸蒸日上,完成了多轮融资,每⽉的用户规模达数千万,支持着几万个企业级应用,国内大型企业(比如中国石油、国家电网)、事业单位(比如高等教育出版社)、知名外企(日本丰田、德高集团)和众多的创业公司都是他们的客户。

尤其难得的是,他们还热心于技术传播和用户教育,写了很多科普文章。我推荐大家看一下他们的博客[12]论坛[13],里面有很多不错的原创内容,比如《LDAP 协议入门》[14]《单点登录教程》[15]。这说明他们把产品真正当作一种技术理想,这在国内是不多见的。

最后,欢迎大家试用[16]他们的服务,前 3000 次的认证是免费的,此后只对活跃用户收费,不登录就不收费。更多问题,可以去论坛[17]提问和咨询。



科技动态

1、142年的种子实验[18]

1879年,一位美国植物学家在密西根州采集了大量植物种子,装瓶后埋在土里,希望几十年或几百年后再挖出来,看看种子是否还能发芽。从那以后,大约每隔20年,该实验的看护者就会挖出一个瓶子,将种子重新播种。

2021年4月中旬,密歇根州立大学的几位老师挖出了其中的一个瓶子,种下了里面的种子。到了4月23日,第一株幼苗破土而出,截止到5月初,已经有11株幼苗发芽了。

这是世界上运行时间最长的实验之一,已经进行了142年,植物学家希望它至少还能持续80年,延续到22世纪。


2、Amazon Sidewalk 网络[19]

Amazon 公司宣布,将在6月份启动一个叫做 Sidewalk 的共享网络。以后,用户只要购买了 Amazon 的硬件设备(比如 Echo 智能音箱、Ring 智能门铃),这些设备就会分享用户家中一小部分带宽,给附近的电子设备共享,让那些设备可以网络通信。

这样一来,物联网设备只要具有蓝牙模块,就可以随处上网,大大扩展了功能。举例来说,运动时可以只带一个手表,不用带手机,就将运动数据发到网上;再比如,追踪项圈可以将宠物的 GPS 坐标实时发到网上。


3、扁平意大利面[20]

意大利面通常是螺旋状或管状,这样的面条有一个缺点,就是很占包装空间。一大包意大利面,真正的容量可能只有包装体积的40%。最近,卡内基梅隆大学的研究人员发明了一种扁平意大利面,煮熟以后会变得卷曲,图片是面条水煮前后的对比。

它的原理是在平坦的面条上刻出沟槽,这些沟槽的形状和深度,是研究人员事先使用计算机和物理实验确定的。水煮时,由于沟槽面的膨胀小于平滑面的膨胀,导致面条卷曲变形。理论上,还可以让面条水煮后呈现更复杂的形状。


4、猪皮移植[21]

河南周口某医院为烧伤病人移植猪皮,手术利用猪皮覆盖保护患者被烧伤的皮肤,等到患者新皮肤组织再生后,移植的猪皮会自行脱落。

严重的烧伤病人需要多次移植。该医院称以前有过患者进行多次猪皮移植手术,“当时一共用了6头猪。”


5、

谷歌的 Fuchsia 操作系统[22]正式亮相,用在自家的智能家居控制器 Nest Hub 上面。这是谷歌的第三个操作系统,前两个是安卓和 ChromeOS。


6、

Facebook[23] 在《纽约时报》等美国大报,刊登全版广告(下图),抨击苹果公司的新版本 iOS 允许关闭用户追踪,认为这样将打击美国小企业,因为 Facebook 无法为他们提供帮助了。

四种显示屏[24]

瑞士巴塞尔的一个基金会,委托当地的艺术家,创造了一个装置艺术品,使用四个显示屏展示当前时间,完成后会放到机场和火车站。

这四个显示屏分别代表了显示技术的四个阶段。

第一个是1960年代的机械点阵屏(Flip-Dot),通过电磁方式翻转黑白圆点,来显示内容。

第二个是1970~1980年代的单色液晶 LCD 屏,通过屏幕底下的灯管发光,只能发蓝光。

第三个是2000年左右的 LED 屏,通过红色、绿色、蓝色的发光二极管的不同组合,显示出彩色。

第四个是当代的液晶 TFT 屏,使用很小的薄膜晶体管,使得分辨率可以做得很高。

文章

1、使用 Notion API 建立自己的账本[25](中文)

Notion 最近开放了 API,作者详细介绍如何写一个 Python 脚本,调用 Notion API,将支付宝和微信导出的交易记录,输入 Notion 形成一个账本。


2、如何画出螺旋曲线?[26](英文)

作者使用通俗语言,介绍螺旋曲线的数学含义,并给出多个 JavaScript 示例。


3、树莓派架设公网网站[27](英文)

作家介绍如何在家庭网络之中,使用树莓派架设一个网站,然后通过端口映射,供外网访问。


4、Linux 系统的磁盘分析工具 gdu 用法[28](英文)

gdu 是 du 命令的 Go 语言版,用来分析 Linux 和 MacOS 系统的磁盘占用情况,提升了执行速度,并且有命令行图形界面。


5、为什么我们从 Webpack 切换到 Vite?[29](英文)

Replit 解释为什么将前端打包工具,从 Webpack 转为 Vite。


6、JavaScript Web Cryptography API 的用法[30](英文)

浏览器原生支持 Web Cryptography API,用于加密和解密,本文通过举例,介绍这个 API 的用法。


7、x86 计算机的栈顶位置[31](英文)

C 语言变量储存在内存的栈(stack)里面,从栈底开始存放,直到栈顶。这个概念很容易混淆,因为栈底是内存的高位地址,栈顶是内存的低位地址,本文就来分析这个概念。


8、山羊吃草问题[32](英文)

如果把山羊拴在谷仓大门上,山羊的活动面积就是上图粉色的部分,具体大小容易算出来。

数学家对这个问题进行了很多发挥,其中有一个版本就是,如果把山羊拴在一个圆形谷仓里面(下图),请问绳子的长度是多少,可以让山羊的活动面积达到谷仓的一半。

工具

1、Slidev[33]

这个工具使用 Markdown 格式编写 PPT 幻灯片,功能较多。


2、Vulture[34]

一个 Python 的静态代码检查工具,可以发现没有用到的代码。


3、Send[35]

Mozilla 基金会曾经推出了一个文件分享服务,后来停止开发了。社区就接过来,做成完全的开源版,现在可以自己搭建,并且有 Web、命令行和安卓等各种客户端。


4、Sequencer 64[36]

一个架子鼓的网页模拟器。


5、Id128[37]

一个 JavaScript 库,生成 UUID(通用唯一识别码),支持多种算法。


6、Pyodide[38]

这个库是浏览器的 Python 运行时,通过 WebAssembly 脚本让网页运行 Python 代码,可以通过它加载一些人工智能或者科学计算的库。


7、Zulip[39]

一个团队协作工具,将聊天和电子邮件的线程模型结合在一起,类似 Slack,但是更像一个内部论坛。


8、Play.js[40]

一个 iOS 应用,提供 JavaScript IDE,允许在 iPhone 和 iPad 上开发 Web 和 Node.js 应用。


9、Magician[41]

一个国内开发者写的 Java 的网络协议解析包,可以用作 HTTP 和 WebSocket 服务器,支持 TCP 和 UDP 通信,使用简单。(@yuyenews[42] 投稿)


10、NewTabEditor[43]

Chrome 浏览器的插件,可以让新标签页变成一个文本编辑器。(@5A59[44] 投稿)

资源

1、CSS 学习教程[45]

谷歌出品的 CSS 教程,内容很丰富全面,一共有24课。(@wxyudl[46] 投稿)


2、Iconic[47]

一个开放式的图标仓库,可以分类查找图标,免费下载。


3、WebGL 指纹[48]

一些大型网站使用 WebGL 生成用户指纹,用来追踪用户。这个网页列出了不同公司使用的追踪代码。


4、MANUZOID[49]

这个网站可以搜索100多万种产品的英文产品说明书。


5、凤凰架构[50]

一本中文的开源书籍,介绍如何构建一套可靠的分布式大型软件系统,可以免费阅读。(@1228857713[51] 投稿)

图片

1、世界最长的公寓楼[52]

俄罗斯圣彼得堡有一座25层公寓楼,长达990米,弯弯曲曲,像一条长蛇。

照片看上去有很多栋楼,其实都是连在一起的。整座建筑有35个入口,3000多套公寓,如果每家有一辆车,就要解决几千辆车的停车问题。


2、印度山城[53]

艾索尔(Aizawl)是印度米佐拉姆邦(Mizoram)的首府,整座城市完全建在山上。

整个山头密密麻麻都是房子,绵延几公里,还有四通八达的马路和公交系统,非常壮观。

文摘

1、 乔布斯反对第三方硬件

摘自《硅谷革命:成就苹果公司的疯狂往事》一书。

苹果公司最早的产品 Apple II 计算机,是联合创始人沃兹设计的。他是一个具有共享精神的工程师,很看重硬件的扩展性,所以他赋予 Apple II 极大的扩展性,内建了七个外置卡插槽,并经过精心设计,每张外置卡都能以自身的 ROM 芯片来运行内置软件。如此灵活的设计让 Apple II 能够运行大量的应用程序,同时也使得很多第三方公司为 Apple II 开发硬件。

不过,后来 Macintosh 电脑的设计负责人 Jef Raskin 有不同的想法。他认为,扩展插槽带来的复杂性(必须允许用户拆开电脑),是阻碍个人电脑普及的原因之一。而且,很多第三方硬件质量参差不齐,不一定能够按照预想的方式工作。不同的第三方硬件也缺乏一致性。

他认为,苹果公司应该推出标准化的、易用的、价格实惠的电脑,这样才能让产品大卖,允许硬件的扩展性只会徒增成本和复杂性,所以应该尽量避免。

乔布斯在很多事情上都和 Jef Raskin 有不同意见,但是唯独对硬件的扩展性看法相同。他也认为,扩展性是设计上的缺陷,而非特性。据说乔布斯以前就很反对 Apple II 有太多的扩展插槽,所以他宣布 Macintosh 永远都不提供扩展插槽,外壳要密封起来,只留下两个串行端口。

后来,他的一生中推出的所有苹果产品,扩展性都非常差,都不允许有第三方硬件扩展。

这样做虽然能保证对产品的控制,但有一个严重的缺点。由于计算机技术发展很快,硬件很容易过时,第三方扩展可以增加设备的适用性,帮助产品满足不同的需求,延长销售寿命。一旦禁止,就必然要求公司要源源不断地推出受欢迎的产品。

言论

1、

电视机的分辨率越高,屏幕尺寸就会越大,所以 8K 电视机不太可能进入家庭。正常情况下,在 3 米的距离观看电视,8K 屏幕需要达到300英寸,否则意义不大,4K 分辨率也有类似问题。

较高的动态范围和较宽的色域,对于电视机可能更有意义。

-- 佳能公司资深研究员[54]


2、

中国的大城市喜欢建造超高层建筑,我将这种现象称为“贫困时代的遗产”。过去的贫困时代仍然给整个社会留有一种落后的价值观,建筑物拼命比高度,展览馆、音乐厅、机场拼命比面积。

建筑物适当的高一点,适当展示形象可以,但不应将建筑物的高度视为现代化的象征。

-- 《专家谈深圳赛格大厦晃动》[55]


3、

如果你的身家达到440亿美元,你也不会想忍受管理手下的小兵。

-- 国外网站[56]评论张一鸣辞去字节跳动的 CEO


4、

1979年,袁隆平的杂交水稻技术被引入美国,这是中华人民共和国历史上的第一个知识产权转让案例。

-- 维基百科的“袁隆平”条目[57]

历史上的本周

2020年(第 109 期):播客的价值

2019年(第 57 期):分享知识是否违反人性?

2018年(第 6 期):未来还需要苦学外语吗?

References

[1] ruanyf/weekly: https://github.com/ruanyf/weekly
[2] 《谁在招人?》: https://github.com/ruanyf/weekly/issues/1747
[3] via: http://yn.people.com.cn/n2/2021/0522/c372453-34739809.html
[4] 游戏开发者的年薪: http://www.ruanyifeng.com/blog/2021/05/weekly-issue-159.html
[5] 视频: https://www.bilibili.com/video/av838499481/
[6] yifeng.ruan@gmail.com: mailto:yifeng.ruan@gmail.com
[7] Authing: https://sourl.cn/ppUZ8z
[8] 范例: https://sourl.cn/UgWcKq
[9] 前端登录组件: https://docs.authing.cn/v2/quickstarts/spa/react.html?hmsr=ap528&hmpl=ap528&hmcu=ap528&hmkw=3&hmci=
[10] SDK: https://docs.authing.cn/v2/guides/basics/authenticate-first-user/use-api-sdk/
[11] 文档: https://docs.authing.cn/v2/guides/access-control/?hmsr=ap528&hmpl=ap528&hmcu=ap528&hmkw=4&hmci=
[12] 博客: https://blog.authing.cn/blog/?hmsr=ap528&hmpl=ap528&hmcu=ap528&hmkw=6&hmci=
[13] 论坛: https://forum.authing.cn/?hmsr=ap528&hmpl=ap528&hmcu=ap528&hmkw=7&hmci=
[14] 《LDAP 协议入门》: https://forum.authing.cn/t/topic/98?hmsr=ap528&hmpl=ap528&hmcu=ap528&hmkw=8&hmci=
[15] 《单点登录教程》: https://forum.authing.cn/t/topic/112?hmsr=ap528&hmpl=ap528&hmcu=ap528&hmkw=9&hmci=
[16] 试用: https://sourl.cn/ppUZ8z
[17] 论坛: https://forum.authing.cn/?hmsr=ap528&hmpl=ap528&hmcu=ap528&hmkw=11&hmci=
[18] 142年的种子实验: https://www.nytimes.com/2021/05/11/science/seeds-germinated-michigan-state.html
[19] Amazon Sidewalk 网络: https://www.amazon.com/Amazon-Sidewalk/b?node=21328123011
[20] 扁平意大利面: https://www.morphingmatter.cs.cmu.edu/projects/morphing-pasta-and-beyond
[21] 猪皮移植: https://m.gmw.cn/baijia/2021-05/07/1302278596.html
[22] 谷歌的 Fuchsia 操作系统: https://9to5google.com/2021/05/25/google-releases-fuchsia-os-nest-hub/
[23] Facebook: https://www.wired.co.uk/article/apple-ios14-facebook
[24] 四种显示屏: https://hackaday.com/2021/05/09/artwork-spans-fifty-years-of-display-technology/
[25] 使用 Notion API 建立自己的账本: https://sspai.com/post/66658
[26] 如何画出螺旋曲线?: https://www.dogatekin.com/blog/hypnotic-degenerate-spirals/
[27] 树莓派架设公网网站: https://viggy28.dev/article/setting-up-ghost-in-raspberry-pi-for-free/
[28] Linux 系统的磁盘分析工具 gdu 用法: https://www.makeuseof.com/how-to-analyze-disk-usage-with-gdu-in-linux/
[29] 为什么我们从 Webpack 切换到 Vite?: https://blog.replit.com/vite
[30] JavaScript Web Cryptography API 的用法: https://blog.sessionstack.com/how-javascript-works-cryptography-how-to-deal-with-man-in-the-middle-mitm-attacks-bf8fc6be546c
[31] x86 计算机的栈顶位置: https://eli.thegreenplace.net/2011/02/04/where-the-top-of-the-stack-is-on-x86
[32] 山羊吃草问题: https://www.quantamagazine.org/solve-math-equations-that-are-stubborn-as-a-goat-20210506/
[33] Slidev: https://github.com/slidevjs/slidev
[34] Vulture: https://github.com/jendrikseipp/vulture
[35] Send: https://github.com/timvisee/send
[36] Sequencer 64: https://www.sequencer64.com/
[37] Id128: https://github.com/aarondcohen/id128
[38] Pyodide: https://github.com/pyodide/pyodide
[39] Zulip: https://zulip.com/
[40] Play.js: https://apps.apple.com/us/app/play-js-javascript-ide/id1423330822
[41] Magician: http://magician-io.com/
[42] @yuyenews: https://github.com/ruanyf/weekly/issues/1774
[43] NewTabEditor: https://notes.tools/
[44] @5A59: https://github.com/ruanyf/weekly/issues/1777
[45] CSS 学习教程: https://web.dev/learn/css/
[46] @wxyudl: https://github.com/ruanyf/weekly/issues/1772
[47] Iconic: https://iconic.app/
[48] WebGL 指纹: https://jonatron.github.io/webgl-fingerprinting/
[49] MANUZOID: https://manuzoid.com/
[50] 凤凰架构: http://icyfenix.cn/
[51] @1228857713: https://github.com/ruanyf/weekly/issues/1771
[52] 世界最长的公寓楼: https://englishrussia.com/2021/04/20/35-entrances-3708-apartments-welcome-to-the-main-city-house-of-all-russia/
[53] 印度山城: https://en.wikipedia.org/wiki/Aizawl
[54] 佳能公司资深研究员: https://www.dpreview.com/articles/6547603416/interview-canons-larry-thorpe-reflects-on-60-years-in-the-business
[55] 《专家谈深圳赛格大厦晃动》: https://finance.sina.com.cn/jjxw/2021-05-21/doc-ikmxzfmm3802539.shtml
[56] 国外网站: https://www.inputmag.com/tech/bytedance-ceo-is-stepping-down-because-hes-rich-tired-and-bored
[57] 维基百科的“袁隆平”条目: https://en.wikipedia.org/wiki/Yuan_Longping


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存